import request from '@/utils/request/req';

// 后端返回的数据格式
interface BackendAiGoodCommentsConfig {
  good_num: number;
  comment_num: number;
  good_interval_time: number;
  is_good: string;
  comment_interval_time: number;
  is_comment: string;
  id: number;
  good_interval_day: number;
  wx_id: string;
  good_sum: number;
  good_random: number;
  comment_sum: number;
  comment_interval_day: number;
  comment_data: string;
  comment_random: number;
}

// AI点赞/评论配置接口
export interface AiGoodCommentsConfig {
  /** 微信ID */
  wxId: string;
  /** 是否自动点赞（1 启用 2 停用） */
  isGood: 1 | 2;
  /** 点赞间隔天数 */
  goodIntervalDay: number;
  /** 发送朋友圈多少分钟后点赞 */
  goodIntervalTime: number;
  /** 每个好友每次最多点几次 */
  goodNum: number;
  /** 每日点赞次数 */
  goodSum: number;
  /** 是否开启随机点赞*/
  goodRandom: number;
  /** 是否自动评论（1 启用 2 停用） */
  isComment: 1 | 2;
  /** 评论内容 */
  commentData: string;
  /** 评论间隔天数 */
  commentIntervalDay: number;
  /** 发送朋友圈多少分钟后评论 */
  commentIntervalTime: number;
  /** 每个好友每次最多评论几次 */
  commentNum: number;
  /** 每日评论次数 */
  commentSum: number;
  /** 是否开启随机评论 */
  commentRandom: number;
}

// 响应数据接口
interface ApiResponse<T> {
  code: number;
  msg: string;
  data: T;
}

// 获取AI点赞/评论列表
export function getAiGoodCommentsList(wxId: string): Promise<ApiResponse<BackendAiGoodCommentsConfig[]>> {
  return request({
    url: '/msg/aiGoodComments/list',
    method: 'get',
    params: { wxId }
  });
}

// 添加或更新AI点赞/评论
export function addOrUpdateAiGoodComments(config: AiGoodCommentsConfig): Promise<ApiResponse<any>> {
  return request({
    url: '/msg/addOrUpdateAiGoodComments',
    method: 'post',
    data: config
  });
}

// 黑白名单查询参数接口
export interface AiFriendshipQueryParams {
  /** 微信ID（必传） */
  wxId: string;
  /** 类型：0-白名单，1-黑名单（必传） */
  type: 0 | 1;
  /** 当前页码 */
  current?: number;
  /** 每页大小 */
  size?: number;
  /** 标签ID（可选） */
  labIds?: string;
  /** 客户名称（可选） */
  name?: string;
}

// 黑白名单查询结果接口
export interface AiFriendshipResult {
  id: number;
  wx_id: string;
  customer_wx_id: string;
  customerName: string;
  customerUrl: string;
  account_type: string;
  wx_account: string;
  type: string; // "0"-白名单，"1"-黑名单
  user_create_time: string;
  user_info_update_time: string;
}

// 分页查询结果接口
export interface PageResult<T> {
  records: T[];
  total: number;
  size: number;
  current: number;
  pages: number;
}

// 黑白名单查询
export function selectAiFriendship(params: AiFriendshipQueryParams): Promise<ApiResponse<PageResult<AiFriendshipResult>>> {
  return request({
    url: '/msg/selectAiFriendship',
    method: 'get',
    params
  });
}

// 新增黑白名单参数接口
export interface AddAiFriendshipParams {
  /** 微信ID（必传） */
  wxId: string;
  /** 类型：0-白名单，1-黑名单（必传） */
  type: 0 | 1;
  /** 客户微信ID，多个用逗号拼接（必传） */
  customerWxIds: string;
}

// 删除黑白名单参数接口
export interface DeleteAiFriendshipParams {
  /** 要删除的数据主键，多个用逗号拼接（必传） */
  ids: string;
}

// 新增黑白名单
export function addAiFriendship(params: AddAiFriendshipParams): Promise<ApiResponse<any>> {
  return request({
    url: '/msg/addAiFriendship',
    method: 'post',
    data: params
  });
}

// 删除黑白名单
export function deleteAiFriendship(params: DeleteAiFriendshipParams): Promise<ApiResponse<any>> {
  return request({
    url: '/msg/deleteAiFriendship',
    method: 'post',
    data: params
  });
}
